package com.xuan.bazi.core;

import lombok.Getter;

/**
 * 八字枚举
 *
 * @author kty
 */
@Getter
public enum BaZiEnum {

    /**
     * 性别（女）
     */
    SEX_WOMAN(0, "女"),

    /**
     * 性别（男）
     */
    SEX_MAN(1, "男"),

    /**
     * 日期类型（公历）
     */
    DATE_TYPE_SOLAR(0, "公历"),

    /**
     * 日期类型（农历）
     */
    DATE_TYPE_LUNAR(1, "农历"),

    /**
     * 子时流派（晚子时日柱算明天）
     */
    ZI_SHI_LIU_PAI_TOMORROW(0, "晚子时日柱算明天"),

    /**
     * 子时流派（晚子时日柱算当天）
     */
    ZI_SHI_LIU_PAI_TODAY(1, "晚子时日柱算当天"),

    /**
     * 起运流派（按天数和时辰数计算：3天1年、1天4个月、1时辰10天）
     */
    QI_YUN_LIU_PAI_DAY(0, "按天数和时辰数计算（3天1年、1天4个月、1时辰10天）"),

    /**
     * 起运流派（按分钟数计算：4320分=1年、360分=1月、12分=1天、1分=2小时）
     */
    QI_YUN_LIU_PAI_MINUTE(1, "按分钟数计算（4320分=1年、360分=1月、12分=1天、1分=2小时）"),

    /**
     * 年柱（以正月初一作为新年的开始）
     */
    YEAR_ZHU_SET_CHUYI(0, "以正月初一作为新年的开始"),

    /**
     * 年柱（以立春当天作为新年的开始）
     */
    YEAR_ZHU_SET_LICHUN_DAY(1, "以立春当天作为新年的开始"),

    /**
     * 年柱（以立春交接的时刻作为新年的开始）
     */
    YEAR_ZHU_SET_LICHUN_SHIKE(2, "以立春交接的时刻作为新年的开始"),

    /**
     * 月柱（以节交接当天起算）
     */
    MONTH_ZHU_SET_DAY(0, "以节交接当天起算"),

    /**
     * 月柱（以节交接时刻起算）
     */
    MONTH_ZHU_SET_SHIKE(1, "以节交接时刻起算"),

    /**
     * 日柱（晚子时日柱算当天）
     */
    DAY_ZHU_SET_TODAY(0, "晚子时日柱算当天"),

    /**
     * 日柱（晚子时日柱算明天）
     */
    DAY_ZHU_SET_TOMORROW(1, "晚子时日柱算明天"),

    /**
     * 时柱（支持早子时和晚子时）
     */
    HOUR_ZHU_SET(0, "支持早子时和晚子时"),

    /**
     * 神煞：学堂（禄命法）
     */
    XUE_TANG_LU_MING(0,"禄命法"),

    /**
     * 神煞：学堂（子平法）
     */
    XUE_TANG_ZI_PING(1,"子平法"),

    /**
     * 神煞：词馆（禄命法）
     */
    CI_GUAN_LU_MING(0,"禄命法"),

    /**
     * 神煞：词馆（子平法）
     */
    CI_GUAN_ZI_PING(1,"子平法");

//****************************************************************************************************************************************************

    /**
     * 信息标识
     */
    private final int mark;

    /**
     * 信息描述
     */
    private final String describe;

//----------------------------------------------------------------------------------------------------------------------------------------------------

    /**
     * 构造方法
     *
     * @param mark     信息标识
     * @param describe 信息描述
     */
    BaZiEnum(int mark, String describe) {

        this.mark = mark;
        this.describe = describe;

    }

}
